(function(){
    var _this=this;
    return {

        import: [
            {
                url: "js/plugins/layer/layer.js",
                import:[
                    {
                        url:"css/plugins/webuploader/webuploader.css"
                    },
                    {
                        url: "js/plugins/webuploader/webuploader.min.js",
                    }
                ]
            }
        ],
        init:function(){
            _this.data.folderId=_this.params.folderId;
            _this.data.sysFileModule=_this.params.sysFileModule;
        },
        before:function(data){
            return data;
        },
        after:function(){
            var layerWindow=layer.open({
                type: 1,
                title:"上传文件",
                content:_this.$(".upload-layer"),
                shadeClose: true,
                end:function(){
                    layer.close(layerWindow);
                    _this.remove();
                    _this.data.sysFileModule.init();
                }
            });
            var uploader = WebUploader.create({
                // swf文件路径
                swf: 'js/plugins/webuploader/Uploader.swf',
                server: window.api+'sysFile/upload',
                // 选择文件的按钮。可选。
                // 内部根据当前运行是创建，可能是input元素，也可能是flash.
                pick: _this.$(".picker"),
                // 不压缩image, 默认如果是jpeg，文件上传前会压缩一把再上传！
                resize: false
            });

            uploader.on('beforeFileQueued',function(file){
                return true;
            });
            //当有文件移除队列的时候
            uploader.on( 'fileDequeued', function( file ) {
                var $li = $( '#'+file.id )
                $li.find('p.state').text('可秒传');
            });
            // 当有文件被添加进队列的时候
            uploader.on( 'fileQueued', function( file ) {
                _this.$(".uploader-list").append( '<div id="' + file.id + '" class="item">' +
                    '<h4 class="info">' + file.name + '</h4>' +
                    '<p class="state">等待上传...</p>' +
                    '</div>' );
            });

            // 文件上传过程中创建进度条实时显示。
            uploader.on( 'uploadProgress', function( file, percentage ) {
                var $li = $( '#'+file.id ),
                    $percent = $li.find('.progress .progress-bar');
                // 避免重复创建
                if ( !$percent.length ) {
                    $percent = $('<div class="progress progress-striped active">' +
                        '<div class="progress-bar" role="progressbar" style="width: 0%">' +
                        '</div>' +
                        '</div>').appendTo( $li ).find('.progress-bar');
                }
                $li.find('p.state').text('上传中');
                $percent.css( 'width', percentage * 100 + '%' );
            });

            uploader.on( 'uploadSuccess', function( file ) {
                $( '#'+file.id ).find('p.state').text('已上传');
            });

            uploader.on( 'uploadError', function( file ) {
                $( '#'+file.id ).find('p.state').text('上传出错');
            });

            uploader.on( 'uploadComplete', function( file ) {
                $( '#'+file.id ).find('.progress').fadeOut();
            });


            _this.$('.e-upload').bind('click', function () {
                uploader.options.formData = {"folderId":_this.data.folderId,"token":window.sysUser.token};
                uploader.upload();
            });
        }
    }
})